LXMF fields
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
This page is under heavy construction and may be outdated – most fields are considered experimental!
Common for all fields is that LXMF handles binary packing before sending. All fields must be passed in the specified format, often as a list with specific fields. Internally, LXMF uses MessagePack to pack data, so it can be efficiently transferred over the air/wire by Reticulum.
Contents
Embedded LXMs
Not yet fully implemented, and spec is likely to change.
| Constant | Index | Description | Content |
|---|---|---|---|
| FIELD_EMBEDDED_LXMS | 0x01 | | |
Telemetry
See the Sideband application source code for telemetry format info.
| Constant | Index | Description | Content |
|---|---|---|---|
| FIELD_TELEMETRY | 0x02 | Node telemetry, all enabled sensors | |
Telemetry stream
See the Sideband application source code for telemetry format info.
| Constant | Index | Description | Content |
|---|---|---|---|
| FIELD_TELEMETRY_STREAM | 0x03 | Aggregated downstream telemetry for bulk transfer | |
Appearance
| Constant | Index | Description | Content |
|---|---|---|---|
| LXMF.FIELD_ICON_APPEARANCE | 0x04 | Defines the icon that represents this node on the situation map. | [string ICON, byte[3] FG_COLOR, byte[3] BG_COLOR] |
Icon is a string with the name of a Material symbol. Searchable list
FG/BG color is an RGB color code from 000000 to FFFFFF.
Example code
# Displays a yellow hiker on a blue background
lxm_fields = { LXMF.FIELD_ICON_APPEARANCE: ["hiking",\xff\xff\x00,\x00\x00\xff] }
lxm = LXMF.LXMessage(dest, source, message_content, desired_method=LXMF.LXMessage.DIRECT, fields=lxm_fields)
File attachment
| Constant | Index | Description | Content |
|---|---|---|---|
| FIELD_FILE_ATTACHMENTS | 0x05 | List of file attachments | See example |
Example code
# Attach a file
file_name = "some_file.pdf"
with open(file_name, "rb") as att_file:
file_attachment_1 = [file_name, att_file.read()]
lxm_fields = { LXMF.FIELD_FILE_ATTACHMENTS: [file_attachment_1] }
lxm = LXMF.LXMessage(dest, source, message_content, desired_method=LXMF.LXMessage.DIRECT, fields=lxm_fields)
Image attachment
| Constant | Index | Description | Content |
|---|---|---|---|
| FIELD_IMAGE | 0x06 | Image container | See example |
# Include an image
image = ["webp", image_data]
lxm_fields = { LXMF.FIELD_IMAGE: image }
lxm = LXMF.LXMessage(dest, source, message_content, desired_method=LXMF.LXMessage.DIRECT, fields=lxm_fields)
Audio attachment
| Constant | Index | Description | Content |
|---|---|---|---|
| FIELD_AUDIO | 0x07 | Audio container for non-realtime purposes | See example |
See https://github.com/markqvist/LXMF/blob/master/LXMF/LXMF.py for available audio modes.
# Audio fields are a list with two entries of:
# - The audio mode in use, from one of the available modes
# - The audio data encoded according to the specified mode
audio = [LXMF.AM_CODEC2_2400, audio_data]
lxm_fields = { LXMF.FIELD_AUDIO: audio }
lxm = LXMF.LXMessage(dest, source, message_content, desired_method=LXMF.LXMessage.DIRECT, fields=lxm_fields)
Thread
Not yet fully implemented, and spec is likely to change.
| Constant | Index | Description | Content |
|---|---|---|---|
| FIELD_THREAD | 0x08 | | |
Commands
See the Sideband application source code for command/result format info.
| Constant | Index | Description | Content |
|---|---|---|---|
| FIELD_COMMANDS | 0x09 | Direct commands | |
Custom commands are sent in this field. Built in commands include: Ping Echo Signal
Results
See the Sideband application source code for command/result format info.
| Constant | Index | Description | Content |
|---|---|---|---|
| FIELD_RESULTS | 0x0A | | |
Group
Not yet fully implemented, and spec is likely to change.
| Constant | Index | Description | Content |
|---|---|---|---|
| FIELD_GROUP | 0x0B | | |
See also